package com.ruoyi.binance.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 日行情对象 binance_daily_market
 * 
 * @author zq
 * @date 2025-09-10
 */
public class BinanceDailyMarket extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 代码 */
    private String code;

    /** 交易日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date date;

    /** 当日开盘时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "当日开盘时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date openTime;

    /** 当日收盘时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "当日收盘时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date closeTime;

    /** 开盘价 */
    @Excel(name = "开盘价")
    private BigDecimal openPrice;

    /** 当日最高价 */
    @Excel(name = "当日最高价")
    private BigDecimal highPrice;

    /** 当日最低价 */
    @Excel(name = "当日最低价")
    private BigDecimal lowPrice;

    /** 最后一笔成交价 */
    @Excel(name = "最后一笔成交价")
    private BigDecimal lastPrice;

    /** 绝对价格变动 */
    @Excel(name = "绝对价格变动")
    private BigDecimal priceChange;

    /** 相对价格变动百分比 */
    @Excel(name = "相对价格变动百分比")
    private BigDecimal priceChangePercent;

    /** 加权均价 */
    @Excel(name = "加权均价")
    private BigDecimal weightedAvgPrice;

    /** 基础货币成交量 */
    @Excel(name = "基础货币成交量")
    private BigDecimal volume;

    /** 计价货币成交量 */
    @Excel(name = "计价货币成交量")
    private BigDecimal quoteVolume;

    /** 当日第一笔交易ID */
    @Excel(name = "当日第一笔交易ID")
    private Long firstTradeId;

    /** 当日最后一笔交易ID */
    @Excel(name = "当日最后一笔交易ID")
    private Long lastTradeId;

    /** 当日交易笔数 */
    @Excel(name = "当日交易笔数")
    private Long tradeCount;

    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }

    public void setDate(Date date) 
    {
        this.date = date;
    }

    public Date getDate() 
    {
        return date;
    }

    public void setOpenTime(Date openTime) 
    {
        this.openTime = openTime;
    }

    public Date getOpenTime() 
    {
        return openTime;
    }

    public void setCloseTime(Date closeTime) 
    {
        this.closeTime = closeTime;
    }

    public Date getCloseTime() 
    {
        return closeTime;
    }

    public void setOpenPrice(BigDecimal openPrice) 
    {
        this.openPrice = openPrice;
    }

    public BigDecimal getOpenPrice() 
    {
        return openPrice;
    }

    public void setHighPrice(BigDecimal highPrice) 
    {
        this.highPrice = highPrice;
    }

    public BigDecimal getHighPrice() 
    {
        return highPrice;
    }

    public void setLowPrice(BigDecimal lowPrice) 
    {
        this.lowPrice = lowPrice;
    }

    public BigDecimal getLowPrice() 
    {
        return lowPrice;
    }

    public void setLastPrice(BigDecimal lastPrice) 
    {
        this.lastPrice = lastPrice;
    }

    public BigDecimal getLastPrice() 
    {
        return lastPrice;
    }

    public void setPriceChange(BigDecimal priceChange) 
    {
        this.priceChange = priceChange;
    }

    public BigDecimal getPriceChange() 
    {
        return priceChange;
    }

    public void setPriceChangePercent(BigDecimal priceChangePercent) 
    {
        this.priceChangePercent = priceChangePercent;
    }

    public BigDecimal getPriceChangePercent() 
    {
        return priceChangePercent;
    }

    public void setWeightedAvgPrice(BigDecimal weightedAvgPrice) 
    {
        this.weightedAvgPrice = weightedAvgPrice;
    }

    public BigDecimal getWeightedAvgPrice() 
    {
        return weightedAvgPrice;
    }

    public void setVolume(BigDecimal volume) 
    {
        this.volume = volume;
    }

    public BigDecimal getVolume() 
    {
        return volume;
    }

    public void setQuoteVolume(BigDecimal quoteVolume) 
    {
        this.quoteVolume = quoteVolume;
    }

    public BigDecimal getQuoteVolume() 
    {
        return quoteVolume;
    }

    public void setFirstTradeId(Long firstTradeId) 
    {
        this.firstTradeId = firstTradeId;
    }

    public Long getFirstTradeId() 
    {
        return firstTradeId;
    }

    public void setLastTradeId(Long lastTradeId) 
    {
        this.lastTradeId = lastTradeId;
    }

    public Long getLastTradeId() 
    {
        return lastTradeId;
    }

    public void setTradeCount(Long tradeCount) 
    {
        this.tradeCount = tradeCount;
    }

    public Long getTradeCount() 
    {
        return tradeCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("code", getCode())
            .append("date", getDate())
            .append("openTime", getOpenTime())
            .append("closeTime", getCloseTime())
            .append("openPrice", getOpenPrice())
            .append("highPrice", getHighPrice())
            .append("lowPrice", getLowPrice())
            .append("lastPrice", getLastPrice())
            .append("priceChange", getPriceChange())
            .append("priceChangePercent", getPriceChangePercent())
            .append("weightedAvgPrice", getWeightedAvgPrice())
            .append("volume", getVolume())
            .append("quoteVolume", getQuoteVolume())
            .append("firstTradeId", getFirstTradeId())
            .append("lastTradeId", getLastTradeId())
            .append("tradeCount", getTradeCount())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
